Semi-automated architectural abstraction specifications for supporting software evolution
نویسندگان
چکیده
In this paper we present an approach for supporting the semi-automated architectural abstraction of architectural models throughout the software lifecycle. It addresses the problem that the design and implementation of a software system often drift apart as software systems evolve, leading to architectural knowledge evaporation. Our approach provides concepts and tool support for the semiautomatic abstraction of architecture component and connector views from implemented systems and keeping the abstracted architecture models up-to-date during software evolution. In particular, we propose architecture abstraction concepts that are supported through a domain-specific language (DSL). Our main focus is on providing architectural abstraction specifications in the DSL that only need to be changed, if the architecture changes, but can tolerate nonarchitectural changes in the underlying source code. Once the software architect has defined an architectural abstraction in the DSL, we can automatically generate architectural component views from the source code using model-driven development (MDD) techniques and check whether architectural design constraints are fulfilled by these models. Our approach supports the automatic generation of traceability links between source code elements and architectural abstractions using MDD techniques to enable software architects to easily link between components and the source code elements that realize them. It enables software architects to compare different versions of the generated architectural component view with each other. We evaluate our research results by studying the evolution of architectural abstractions in different consecutive versions of five open source systems and by analyzing the performance of our approach in these cases.
منابع مشابه
Meta-model Differences for Supporting Model Co-evolution
Software development is witnessing the increasing need of version management techniques for supporting the evolution of model-based artefacts. In this respect, meta-models can be considered one of the basic concepts of Model-Driven Engineering and are expected to evolve during their life-cycle. As a consequence, models conforming to changed meta-models have to be updated for preserving their we...
متن کاملManaging Software Architectural Evolution at Multiple Levels of Abstraction
Software development is a dynamic process where engineers constantly modify and refine systems. As a consequence, system architecture evolves over time. Software architectural evolution has been managed at different abstraction levels: the meta level, the architectural level, the application level, and the implementation level. However, management supports for architectural evolution are limite...
متن کاملLayered Patterns in Modelling and Transformation of Service-Based Software Architectures
Service-oriented architecture is a recent paradigm for architectural design. The software engineering aspects in this context, that have not been sufficiently addressed, are software evolution and software migration. Architectures are of great importance if large software systems change. Architectural transformations can guide and make this change controllable. In this paper, we present a model...
متن کاملA Formal Approach for Incorporating Architectural Tactics into the Software Architecture
Software architects principally leverage successful architectural design practices systematized in terms of architectural styles and tactics. While architectural tactics focus on particular non-functional properties, styles are typical solutions that generally coverage several aspects. The problem is that we do not yet have a formal account of how styles and tactics interact in a way that is su...
متن کاملOn Specification Carrying Software, its Refinement and Composition
In this paper, we present the framework of evolving specifications (especs), implementing, in the categorical setting of algebraic specifications, a logical view of state, known from Hoare logic to abstract state machines (evolving algebras). The categorical support for both top-down and bottom-up development is thus extended from the refinement and composition of the structure of programs, to ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Sci. Comput. Program.
دوره 90 شماره
صفحات -
تاریخ انتشار 2014